package com.company.class5;

import java.util.Arrays;

/**
 * @Classname DoubleArray
 * @Description 二维数组
 * @Date 2022/4/24 18:28
 * @Created by zbw
 */

public class DoubleArray {
    public static void main(String[] args) {
        //二维数组的定义，用两个中括号，分别表示行和列
        String[][] sarr = new String[3][6];
        //二维数组，也是一个数组，相当于它存储3个一维数组，而不是存储18个字符串。
        System.out.println(Arrays.toString(sarr));

        //查
        //调用二维数组所存储的一维数组
        System.out.println(sarr[1]);
        //调用二维数组中存储的对应位置元素
        System.out.println(sarr[1][1]);

        //改
        //修改赋值的时候，必须使用new String[],不能省略了，因为要提前为数组分配好内存，再进行赋值。
        //实际上，二维数组只管自己存储3个一维数组，这个3的长度不能变。
        sarr[1] = new String[]{"roy","will","zbw","roy","will","zbw","roy","will","zbw","roy","will","zbw"};
        System.out.println(Arrays.toString(sarr[1]));
        System.out.println(sarr.length);

        System.out.println("---------------------------输出二维数组的内容-----------");
        for (String[] strings : sarr) {
            //输出每个一维数组的字符串显示。
            System.out.println(Arrays.toString(strings));
        }
        //下标遍历
        for (int i = 0; i < sarr.length; i++) {
            //遍历一维数组
            for (int j = 0; j < sarr[i].length; j++) {
                System.out.print(sarr[i][j]+",");
            }
            System.out.println();
        }
        //九九乘法表
        String[][] table = new String[9][9];
        for (int row = 0; row < table.length; row++) {
            String[] colnum = table[row];
            for (int cindex = 0; cindex < colnum.length; cindex++) {
                //计算时，下标从0开始，但是对应位置是下标+1
                table[row][cindex] = (row + 1) * (cindex + 1) + "";
            }
        }
        for (String[] strings: table){
            for (String string: strings){
                System.out.print(string+" ");
            }
            System.out.println();
        }
    }
}

